Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new @forward-software/react-auth-apple adapter package to the react-auth ecosystem, providing Apple Sign-In support across Web and React Native (Expo), and registers it for automated releases.
Changes:
- Added new
packages/apple-signinpackage with web + nativeAppleAuthClientimplementations, button components, and Apple JS SDK wrapper. - Added Expo native modules for iOS (Swift) and Android (Kotlin + Custom Tabs).
- Updated release-please configuration/manifest and lockfile to include the new package.
Reviewed changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| release-please-config.json | Registers packages/apple-signin for release-please tagging. |
| .release-please-manifest.json | Adds initial version entry for packages/apple-signin. |
| pnpm-lock.yaml | Adds new workspace importer and dependency graph updates for the new package. |
| packages/apple-signin/package.json | Defines the new package metadata, exports, scripts, peers, and dev deps. |
| packages/apple-signin/README.md | Documents installation and usage for web/iOS/Android. |
| packages/apple-signin/tsconfig.json | TypeScript build configuration for the new package. |
| packages/apple-signin/vitest.config.ts | Vitest configuration for the new package tests (jsdom + coverage). |
| packages/apple-signin/test/test-utils.ts | Shared test utilities (mock storage + mock Apple JWTs). |
| packages/apple-signin/test/AppleAuthClient.web.spec.ts | Unit tests for web AppleAuthClient behavior. |
| packages/apple-signin/test/AppleAuthClient.native.spec.ts | Unit tests for native AppleAuthClient behavior (mocked native module). |
| packages/apple-signin/src/types.ts | Shared types/config contracts for credentials/tokens/storage and platform configs. |
| packages/apple-signin/src/index.ts | Web entrypoint exports for the package. |
| packages/apple-signin/src/index.native.ts | React Native entrypoint exports for the package. |
| packages/apple-signin/src/web/index.ts | Web sub-entry exports (client + button). |
| packages/apple-signin/src/web/appleid.ts | Thin loader/wrapper around Apple’s JS SDK (AppleID.auth). |
| packages/apple-signin/src/web/AppleAuthClient.ts | Web AuthClient implementation with persistence + JWT exp parsing. |
| packages/apple-signin/src/web/AppleSignInButton.tsx | Web button component that initializes Apple JS SDK and returns credentials. |
| packages/apple-signin/src/native/index.ts | Native sub-entry exports (client + button + module namespace). |
| packages/apple-signin/src/native/AppleAuthClient.ts | Native AuthClient implementation with persistence and credential-state checks. |
| packages/apple-signin/src/native/AppleSignInButton.tsx | React Native button component calling the native module. |
| packages/apple-signin/src/native/AppleSignInModule.ts | JS wrapper around the Expo native module (requireNativeModule). |
| packages/apple-signin/expo-module.config.json | Expo module registration for Apple/Android native modules. |
| packages/apple-signin/react-auth-apple.podspec | Root podspec for iOS integration. |
| packages/apple-signin/ios/react-auth-apple.podspec | iOS-specific podspec colocated under ios/. |
| packages/apple-signin/ios/AppleSignInModule.swift | iOS Expo module implementing configure/signIn/getCredentialState/signOut. |
| packages/apple-signin/android/build.gradle | Android library build config + dependencies (Custom Tabs). |
| packages/apple-signin/android/src/main/java/expo/modules/applesignin/AppleSignInModule.kt | Android Expo module implementing OAuth flow + callback handling. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@IronTony please update documentation and CI configuration files with the new package identifier as mentioned in the "How to implement or enhance an adapter package" in Also update |
212fee5 to
59e41b9
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 34 out of 35 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/apple-signin/android/src/main/java/expo/modules/applesignin/AppleSignInModule.kt
Show resolved
Hide resolved
panz3r
left a comment
There was a problem hiding this comment.
LGTM 👍🤖
Only thing, can you remove the PLAN.md file now that it has been executed?
…group across 1 directory (#217) fix(deps): bump @vitejs/plugin-react Bumps the vite group with 1 update in the / directory: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react). Updates `@vitejs/plugin-react` from 4.7.0 to 6.0.1 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.1/packages/plugin-react) --- updated-dependencies: - dependency-name: "@vitejs/plugin-react" dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: vite ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Introduced package with a ready-made implementation and . - Updated documentation in , , and to include details about the new adapter. - Enhanced issue templates and GitHub workflows to accommodate the new package. - Added support for CSRF protection in the Android OAuth flow and improved error handling in the AppleAuthClient.
- Removed deprecated version 4.0.3 and updated all references to picomatch to version 4.0.4. - Ensured compatibility with dependencies that rely on picomatch.
- Added platform-specific checks for in React Native to prevent errors on Android. - Improved error handling in to manage token expiry and credential state more effectively. - Updated to restrict usage to Android only. - Minor adjustments to the Apple Sign-In button for better accessibility. - Enhanced README documentation to reflect these changes.
dd7673c to
1df084e
Compare
- Added support for version 15.15.4 in the package. - Updated to include as a dependency and peer dependency. - Enhanced README documentation to clarify the integration process and usage of the Apple Sign-In button. - Improved error handling in the Apple Sign-In module to manage sign-in state more effectively. - Introduced a new component for better logo rendering in both web and native environments.
Affected Package(s)
@forward-software/react-auth(lib)@forward-software/react-auth-google(packages/google-signin)Related Issue(s)
None
Motivation
Add Apple Sign-In support to the react-auth ecosystem, following the same adapter pattern used by
react-auth-google. This enables apps using@forward-software/react-authto integrate Sign in with Apple across Web, iOS, and Android with a unified API.Description of Changes
@forward-software/react-auth-applepackage (v1.0.0) implementing theAuthClient<AppleAuthTokens, AppleAuthCredentials>interfaceAuthenticationServicesframework via Expo module (no external dependencies)AppleSignInButtoncomponents for both web and React Native with customizable appearance./web/appleid) for custom integrationsAppleAuthClientimplementationsrelease-please-config.jsonand.release-please-manifest.jsonBreaking Changes
None
How to Test
Vitest) and build steps pass successfully on this PR.pnpm installto install dependencies.pnpm --filter @forward-software/react-auth-apple testto run tests for the new package.pnpm --filter @forward-software/react-auth-apple buildto verify the build succeeds.pnpm --filter @forward-software/react-auth-apple lintto check for linting errors.Checklist
Notes for Reviewers
packages/google-signinfor consistency.form_postresponse mode and redirect back to the app via deep link. See the README for setup details.AuthenticationServices,CryptoKit), so no additional CocoaPods or native dependencies are needed.